
package csse3004.GD.SysAdmin;

import csse3004.GD.PollAdminAccount;
import csse3004.GD.Poll;
import csse3004.GD.USTemp;
import java.util.ArrayList;

/**
 *
 * @author Tom McNair - S41758984
 */
public interface SysAdminService {
    public ArrayList<AdminAccount> getPAdminDetails();
    public int[] getUserNumbers();
    public int getPollCount();
    public int getActivePollCount();
    public ArrayList<USTemp> getUsersByLocation(String searchKey);
    public ArrayList<USTemp> getUsersByOrganisation(String searchKey);
    
    public ArrayList<Poll> getPolls(int userID);
    public ArrayList<PollAdminAccount> getPollAdminList();
    
    public boolean activateAccount(int userID);
    public boolean deactivateAccount(int userID);
    
    public ArrayList<ManagePA> getActivePAList (int userID);
    
    public SystemReport getReportData();
    public int[] displayActiveAdmin();
    public int[] displayInactiveAdmin();
    /**
     * Sets the users password, no validation beyond that the user exists is 
     * required
     * @param userID
     * @param password The password to be set
     * @return false only if the user doesn't exist
     */
    public String getUserEmail(int userID);
    
    public String getUserExpiry(int userID);
    
    public boolean setPassword(int userID, String password);
    
    public boolean editUserEmail(int userID, String email);
    
    public boolean editUserExpiry(int userID, String expiry);
}